package utils.dataaccess;

import entities.Authorisation;
import entities.Forumblocks;
import entities.Forumposts;
import entities.Forumthreads;
import entities.Systemobserver;
import java.util.ArrayList;
import java.util.Date;

/**
 *
 * @author dezmond
 */
public interface IDatabaseUtil {

    void changeGroup(Authorisation user, int groupID);

    void delete(Object entity);

    Forumblocks getBlockById(int blockID);

    Forumblocks getBlockByName(String value);

    ArrayList<Forumblocks> getBlocks();

    ArrayList<Forumthreads> getBlocksThreads(Forumblocks block);

    Authorisation getByEmail(String email);

    ArrayList<Authorisation> getEntries();

    Authorisation getEntry(String username);

    Authorisation getEntry(String username, String password);

    ArrayList<Forumposts> getPosts(Forumthreads thread);

    ArrayList<Forumposts> getPosts(String pattern);

    ArrayList<Forumposts> getPosts(Authorisation user);

    ArrayList<Systemobserver> getStatistics();

    Systemobserver getStatistics(Date date);

    Forumthreads getThreadById(int threadID);

    void increaseUserCounter();

    boolean isRegistered(String username);

    void moveThread(Forumthreads thread, Forumblocks sourceBlock, Forumblocks targetBlock);

    void persist(Object entity);

    void save(Object entity);

    void updateEventCounter();
    
}
